package com.seafood.dto;

import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 产品搜索DTO
 */
@Data
public class ProductSearchDTO {
    
    private String keyword;           // 关键词搜索
    
    private Long categoryId;          // 分类ID
    
    private String origin;            // 产地
    
    private String species;           // 品种
    
    private String processingMethod;  // 加工方式
    
    private String grade;             // 等级
    
    @DecimalMin(value = "0.0", message = "最低价格不能小于0")
    private BigDecimal minPrice;      // 最低价格
    
    @DecimalMin(value = "0.0", message = "最高价格不能小于0")
    private BigDecimal maxPrice;      // 最高价格
    
    private String status;            // 产品状态
    
    private Boolean inStock;          // 是否有库存
    
    // 排序字段
    private String sortBy = "createdAt";     // 排序字段：price, createdAt, name
    
    private String sortDirection = "desc";   // 排序方向：asc, desc
    
    // 分页参数
    @NotNull(message = "页码不能为空")
    private Integer page = 0;         // 页码（从0开始）
    
    @NotNull(message = "每页大小不能为空")
    private Integer size = 12;        // 每页大小
}